<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
        //封装自己的数学对象
        var myMath = {
            PI: 3.1415926,
            max: function() {
                // 参数的匹配是从左向右进行匹配，，如果实参少于形参，后面的参数默认undefined
                // 实参的个数多于形参的个数，可以通过arguments访问
                // 函数对象的length属性是函数形参的个数
                // 如果参数多于4个，那么最好将参数封装成对象
                // 函数参数的值传递和引用传递
                //    值传递：一个值类型的副本，函数内部不影响函数外部传递变化
                //    引用传递：是传递引用对象的地址，函数内部修改会影响传递数的引用对象。
                var max = arguments[0];
                for (var i = 1; i < arguments.length; i++) {
                    if (arguments[i] > max) {
                        max = arguments[i];
                    }
                }
                return max;
            }
        }
        console.log(myMath.PI);
        console.log(myMath.max(1, 5, 9));
    </script>
</head>

<body>

</body>

</html>